#ifndef NETWORKWIDGET_H
#define NETWORKWIDGET_H

#include <QWidget>
#include "ui_networkwidget.h"
#include <QLabel>
#include <tcp_client.h>
#include <QString>
#include <QDebug>
#include <QTcpSocket>
#include <QHostAddress>
#include <tcp_server.h>

QT_BEGIN_NAMESPACE
namespace Ui { class networkwidget; }
QT_END_NAMESPACE

class NetworkWidget : public QWidget
{
    Q_OBJECT

public:
    NetworkWidget(QWidget *parent = nullptr);
    ~NetworkWidget();
    // 获取当前模式（如 "TCP客户端" 或 "TCP服务器"）
        QString getCurrentMode() const {
            return ui->comboBox->currentText(); // 内部可访问私有ui
        }

        // 发送命令（根据当前模式调用客户端或服务器发送）
        void sendCommand(const QString& cmd)
        {
            if (getCurrentMode() == "TCP客户端")
            {
                if (client)
                { // 内部可访问私有client
                    client->send_msg(cmd);
                }
            }
            else if (getCurrentMode() == "TCP服务器")
            {
                if (server && server->getSocket()) { // 调用server的接口获取Socket
                    server->getSocket()->write(cmd.toUtf8());
                }
            }
        }
private:
    QString client_or_server;
    // tcp 客户端的类
    TCP_client *client;  // 改为指针
    tcp_server *server;  // 改为指针
signals:
    void switchToRemoteControl(); // 自定义信号，通知切换到 RemoteControlForm 界面
    void connectionStatusChanged(QString status);//传递连接状态的信号（参数为状态文本）
    void receivedNetworkMessage(QString message);//转发网络接收消息的信号
private slots:
    void on_pushButton_2_clicked();

    void on_comboBox_currentIndexChanged(const QString &arg1);

    void on_pushButton_clicked();

    void on_pushButton_3_clicked();

    void on_pushButton_4_clicked();

private:
    Ui::networkwidget *ui;
    QLabel *label_7; // 新增对label_7的引用
};
#endif // NETWORKWIDGET_H
